package com.example.travelplan.app.dominio;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Map;
import java.util.Date;
import java.util.List;

/**
 * Created by alto on 19/06/2014.
 */

public class Roteiro {

    private Integer             m_id;
    private  Cidade             m_cidade;
    private  Map<Integer,Dia>   m_conjuntoDias;
    private  boolean            m_bFavorito;
    private  Date               m_dataIda;
    private  Date               m_datavolta;

   public Roteiro(Cidade _cidade){
        this.m_id =  0;
        this.m_cidade = _cidade;
        this.m_conjuntoDias = null;
        this.m_bFavorito = false;
        this.setM_dataIda(null);
        this.setM_datavolta(null);
    }

   public Roteiro(Integer _id, Cidade _cidade, boolean _favorito, Date _ida, Date _volta){
       this.m_id =  _id;
       this.m_cidade = _cidade;
       this.m_conjuntoDias = null;
       this.m_bFavorito = _favorito;
       this.setM_dataIda(_ida);
       this.setM_datavolta(_volta);
    }

    public Integer getM_id() {
        return m_id;
    }

    public void setM_id(Integer m_id) {
        this.m_id = m_id;
    }

    public Cidade getM_cidade() {
        return m_cidade;
    }

    public void setM_cidade(Cidade m_cidade) {
        this.m_cidade = m_cidade;
    }

    public Map<Integer,Dia> getM_conjuntoDias() {
        return m_conjuntoDias;
    }

    public List<Dia> getListaDias(){
        return new ArrayList<Dia>(m_conjuntoDias.values());
    }

    public void setM_conjuntoDias(Map<Integer,Dia> m_conjuntoDias) {
        this.m_conjuntoDias = m_conjuntoDias;
    }

    public boolean isM_bFavorito() {
        return m_bFavorito;
    }

    public void setM_bFavorito(boolean m_bFavorito) {
        this.m_bFavorito = m_bFavorito;
    }

    public Date obterDataInicial(){
        Dia dia = m_conjuntoDias.get(1);
        return dia.getM_data();
    }

    public Date obterDataFinal(){
        Integer tam = m_conjuntoDias.size();
        Dia ultimoDia = m_conjuntoDias.get(tam);
        return ultimoDia.getM_data();
    }

    public Date getM_dataIda() {
        return m_dataIda;
    }

    public void setM_dataIda(Date m_dataIda) {
        this.m_dataIda = m_dataIda;
    }

    public Date getM_datavolta() {
        return m_datavolta;
    }

    public void setM_datavolta(Date m_datavolta) {
        this.m_datavolta = m_datavolta;
    }

    public String getStringDataIda(){
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        return sdf.format(getM_dataIda());
    }

    public String getStringDataVolta(){
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        return sdf.format(getM_datavolta());
    }
}
